Skip to content

Latest commit

 

History

History
62 lines (51 loc) · 1.46 KB

File metadata and controls

62 lines (51 loc) · 1.46 KB

1759. Count Number of Homogenous Substrings

Given a string s, return the number of homogenous substrings ofs. Since the answer may be too large, return it modulo109 + 7.

A string is homogenous if all the characters of the string are the same.

A substring is a contiguous sequence of characters within a string.

Example 1:

Input: s = "abbcccaa" Output: 13 Explanation: The homogenous substrings are listed as below: "a" appears 3 times. "aa" appears 1 time. "b" appears 2 times. "bb" appears 1 time. "c" appears 3 times. "cc" appears 2 times. "ccc" appears 1 time. 3 + 1 + 2 + 1 + 3 + 2 + 1 = 13. 

Example 2:

Input: s = "xy" Output: 2 Explanation: The homogenous substrings are "x" and "y". 

Example 3:

Input: s = "zzzzz" Output: 15 

Constraints:

  • 1 <= s.length <= 105
  • s consists of lowercase letters.

Solutions (Rust)

1. Solution

implSolution{pubfncount_homogenous(s:String) -> i32{let s = s.as_bytes();letmut count = 1;letmut ret = 1;for i in1..s.len(){if s[i] != s[i - 1]{ count = 0;} count += 1; ret = (ret + count) % 1_000_000_007;} ret }}
close